\hypertarget{class_systematic_robot}{\section{Systematic\-Robot Class Reference}
\label{class_systematic_robot}\index{Systematic\-Robot@{Systematic\-Robot}}
}


{\ttfamily \#include $<$Systematic\-Robot.\-hpp$>$}

Inheritance diagram for Systematic\-Robot\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{class_systematic_robot}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_systematic_robot_ac6777138ed80b837484dbb90648e7b8f}{Systematic\-Robot} ()
\item 
virtual \hyperlink{class_systematic_robot_a654fbc9c376e91c06d5a0b05a9736198}{$\sim$\-Systematic\-Robot} ()
\item 
void \hyperlink{class_systematic_robot_a275212f2365697c5ee7e49d9f23ff96a}{Add\-Subsystem} (\hyperlink{class_robot_subsystem}{Robot\-Subsystem} \&subsystem)
\item 
void \hyperlink{class_systematic_robot_a62f144ef5887ce42cd73e845b30f018a}{Add\-Subsystem} (\hyperlink{class_robot_subsystem}{Robot\-Subsystem} $\ast$subsystem)
\item 
void \hyperlink{class_systematic_robot_a911af02148014119b4e0c5b4d8b00ae4}{Add\-Persistent\-Service} (\hyperlink{class_service}{Service} \&service)
\item 
void \hyperlink{class_systematic_robot_a23136dba9b43b9ae9f8733e6afcfb068}{Add\-Enabled\-Service} (\hyperlink{class_service}{Service} \&service)
\item 
void \hyperlink{class_systematic_robot_a4b5041a125c5f21dd8f7100124151a4d}{Add\-Autonomous\-Service} (\hyperlink{class_service}{Service} \&service)
\item 
void \hyperlink{class_systematic_robot_aa29cc6535f47668622f4c6e7411e4077}{Add\-Teleop\-Service} (\hyperlink{class_service}{Service} \&service)
\item 
void \hyperlink{class_systematic_robot_a31281a11abb738f73bfa2c4393b3bdeb}{Add\-Test\-Service} (\hyperlink{class_service}{Service} \&service)
\item 
double \hyperlink{class_systematic_robot_a1906802e28c2223dea24605a5153afde}{Get\-Period} ()
\item 
void \hyperlink{class_systematic_robot_a34a2e37910d74c59d3e501571af651b2}{Set\-Period} (double period)
\item 
double \hyperlink{class_systematic_robot_aef15b2c39270266c328205923c33e6f4}{Get\-Loops\-Per\-Sec} ()
\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static const double \hyperlink{class_systematic_robot_a44bfb4d5c12753c430f8f953dd10b414}{s\-Default\-Period} = 0.\-0
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_systematic_robot_abcb799ee3939531d097b7097516a0547}{virtual void {\bfseries Start\-Competition} ()}\label{class_systematic_robot_abcb799ee3939531d097b7097516a0547}

\item 
virtual void \hyperlink{class_systematic_robot_ab52c5dcca0d153bd142a7ba31d9f6488}{Initialize} ()
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_systematic_robot_aff995bb6d990b08ce3a0d868f0532e50}{class {\bfseries Subscriber}}\label{class_systematic_robot_aff995bb6d990b08ce3a0d868f0532e50}

\item 
\hypertarget{class_systematic_robot_a15f66c7ea6739b10f4496bda8a0536b9}{class {\bfseries Game\-Service}}\label{class_systematic_robot_a15f66c7ea6739b10f4496bda8a0536b9}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
The \hyperlink{class_systematic_robot}{Systematic\-Robot} class represents a robot that holds all the subsystems and services and delegates to them.

\hyperlink{class_systematic_robot}{Systematic\-Robot} is a cooler version of Iterative\-Robot, so the underlying control flow is similar. The robot will periodicly call (as part of it's periodic loop) the Handle\-Periodic function in each awake \hyperlink{class_robot_subsystem}{Robot\-Subsystem} and running \hyperlink{class_service}{Service} that has been added to the robot. Most of your code will probably go in the Handle\-Periodic functions.

For understanding how work should be delegated to subsystems and service, consult the \hyperlink{class_robot_subsystem}{Robot\-Subsystem} and \hyperlink{class_service}{Service} pages.

To use it, create a subclass place code in the constructor to add subsystems and services to your robot. Be sure to add your persistent, enabled, autonomous, and teleop services that will start and stop the other services when necessary. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_systematic_robot_ac6777138ed80b837484dbb90648e7b8f}{\index{Systematic\-Robot@{Systematic\-Robot}!Systematic\-Robot@{Systematic\-Robot}}
\index{Systematic\-Robot@{Systematic\-Robot}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{Systematic\-Robot}]{\setlength{\rightskip}{0pt plus 5cm}Systematic\-Robot\-::\-Systematic\-Robot (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_systematic_robot_ac6777138ed80b837484dbb90648e7b8f}
Constructor for \hyperlink{class_systematic_robot}{Systematic\-Robot}. \hypertarget{class_systematic_robot_a654fbc9c376e91c06d5a0b05a9736198}{\index{Systematic\-Robot@{Systematic\-Robot}!$\sim$\-Systematic\-Robot@{$\sim$\-Systematic\-Robot}}
\index{$\sim$\-Systematic\-Robot@{$\sim$\-Systematic\-Robot}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{$\sim$\-Systematic\-Robot}]{\setlength{\rightskip}{0pt plus 5cm}Systematic\-Robot\-::$\sim$\-Systematic\-Robot (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_systematic_robot_a654fbc9c376e91c06d5a0b05a9736198}
Destructor for \hyperlink{class_systematic_robot}{Systematic\-Robot}. 

\subsection{Member Function Documentation}
\hypertarget{class_systematic_robot_a4b5041a125c5f21dd8f7100124151a4d}{\index{Systematic\-Robot@{Systematic\-Robot}!Add\-Autonomous\-Service@{Add\-Autonomous\-Service}}
\index{Add\-Autonomous\-Service@{Add\-Autonomous\-Service}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{Add\-Autonomous\-Service}]{\setlength{\rightskip}{0pt plus 5cm}void Systematic\-Robot\-::\-Add\-Autonomous\-Service (
\begin{DoxyParamCaption}
\item[{{\bf Service} \&}]{service}
\end{DoxyParamCaption}
)}}\label{class_systematic_robot_a4b5041a125c5f21dd8f7100124151a4d}
Add a \hyperlink{class_service}{Service} to be running when and only when the robot is in Autonomous.


\begin{DoxyParams}{Parameters}
{\em controller} & The service to add to the robot. \\
\hline
\end{DoxyParams}
\hypertarget{class_systematic_robot_a23136dba9b43b9ae9f8733e6afcfb068}{\index{Systematic\-Robot@{Systematic\-Robot}!Add\-Enabled\-Service@{Add\-Enabled\-Service}}
\index{Add\-Enabled\-Service@{Add\-Enabled\-Service}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{Add\-Enabled\-Service}]{\setlength{\rightskip}{0pt plus 5cm}void Systematic\-Robot\-::\-Add\-Enabled\-Service (
\begin{DoxyParamCaption}
\item[{{\bf Service} \&}]{service}
\end{DoxyParamCaption}
)}}\label{class_systematic_robot_a23136dba9b43b9ae9f8733e6afcfb068}
Add a \hyperlink{class_service}{Service} to be running when and only when the robot is enabled.


\begin{DoxyParams}{Parameters}
{\em controller} & The service to add to the robot. \\
\hline
\end{DoxyParams}
\hypertarget{class_systematic_robot_a911af02148014119b4e0c5b4d8b00ae4}{\index{Systematic\-Robot@{Systematic\-Robot}!Add\-Persistent\-Service@{Add\-Persistent\-Service}}
\index{Add\-Persistent\-Service@{Add\-Persistent\-Service}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{Add\-Persistent\-Service}]{\setlength{\rightskip}{0pt plus 5cm}void Systematic\-Robot\-::\-Add\-Persistent\-Service (
\begin{DoxyParamCaption}
\item[{{\bf Service} \&}]{service}
\end{DoxyParamCaption}
)}}\label{class_systematic_robot_a911af02148014119b4e0c5b4d8b00ae4}
Add a \hyperlink{class_service}{Service} to be always running.


\begin{DoxyParams}{Parameters}
{\em controller} & The service to add to the robot. \\
\hline
\end{DoxyParams}
\hypertarget{class_systematic_robot_a275212f2365697c5ee7e49d9f23ff96a}{\index{Systematic\-Robot@{Systematic\-Robot}!Add\-Subsystem@{Add\-Subsystem}}
\index{Add\-Subsystem@{Add\-Subsystem}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{Add\-Subsystem}]{\setlength{\rightskip}{0pt plus 5cm}void Systematic\-Robot\-::\-Add\-Subsystem (
\begin{DoxyParamCaption}
\item[{{\bf Robot\-Subsystem} \&}]{subsystem}
\end{DoxyParamCaption}
)}}\label{class_systematic_robot_a275212f2365697c5ee7e49d9f23ff96a}
Add another \hyperlink{class_robot_subsystem}{Robot\-Subsystem}.


\begin{DoxyParams}{Parameters}
{\em subsystem} & The subsystem to add to the robot. \\
\hline
\end{DoxyParams}
\hypertarget{class_systematic_robot_a62f144ef5887ce42cd73e845b30f018a}{\index{Systematic\-Robot@{Systematic\-Robot}!Add\-Subsystem@{Add\-Subsystem}}
\index{Add\-Subsystem@{Add\-Subsystem}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{Add\-Subsystem}]{\setlength{\rightskip}{0pt plus 5cm}void Systematic\-Robot\-::\-Add\-Subsystem (
\begin{DoxyParamCaption}
\item[{{\bf Robot\-Subsystem} $\ast$}]{subsystem}
\end{DoxyParamCaption}
)}}\label{class_systematic_robot_a62f144ef5887ce42cd73e845b30f018a}
Add another \hyperlink{class_robot_subsystem}{Robot\-Subsystem}.


\begin{DoxyParams}{Parameters}
{\em subsystem} & The subsystem to add to the robot. \\
\hline
\end{DoxyParams}
\hypertarget{class_systematic_robot_aa29cc6535f47668622f4c6e7411e4077}{\index{Systematic\-Robot@{Systematic\-Robot}!Add\-Teleop\-Service@{Add\-Teleop\-Service}}
\index{Add\-Teleop\-Service@{Add\-Teleop\-Service}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{Add\-Teleop\-Service}]{\setlength{\rightskip}{0pt plus 5cm}void Systematic\-Robot\-::\-Add\-Teleop\-Service (
\begin{DoxyParamCaption}
\item[{{\bf Service} \&}]{service}
\end{DoxyParamCaption}
)}}\label{class_systematic_robot_aa29cc6535f47668622f4c6e7411e4077}
Add a \hyperlink{class_service}{Service} to be activate when and only when the robot is in Teleop.


\begin{DoxyParams}{Parameters}
{\em controller} & The service to add to the robot. \\
\hline
\end{DoxyParams}
\hypertarget{class_systematic_robot_a31281a11abb738f73bfa2c4393b3bdeb}{\index{Systematic\-Robot@{Systematic\-Robot}!Add\-Test\-Service@{Add\-Test\-Service}}
\index{Add\-Test\-Service@{Add\-Test\-Service}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{Add\-Test\-Service}]{\setlength{\rightskip}{0pt plus 5cm}void Systematic\-Robot\-::\-Add\-Test\-Service (
\begin{DoxyParamCaption}
\item[{{\bf Service} \&}]{service}
\end{DoxyParamCaption}
)}}\label{class_systematic_robot_a31281a11abb738f73bfa2c4393b3bdeb}
Add a \hyperlink{class_service}{Service} to be running when and only when the robot is in Test.


\begin{DoxyParams}{Parameters}
{\em controller} & The service to add to the robot. \\
\hline
\end{DoxyParams}
\hypertarget{class_systematic_robot_aef15b2c39270266c328205923c33e6f4}{\index{Systematic\-Robot@{Systematic\-Robot}!Get\-Loops\-Per\-Sec@{Get\-Loops\-Per\-Sec}}
\index{Get\-Loops\-Per\-Sec@{Get\-Loops\-Per\-Sec}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{Get\-Loops\-Per\-Sec}]{\setlength{\rightskip}{0pt plus 5cm}double Systematic\-Robot\-::\-Get\-Loops\-Per\-Sec (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_systematic_robot_aef15b2c39270266c328205923c33e6f4}
Gets the number of periodic loops per second.

Almost exactly like Iterative\-Robot\-::\-Get\-Loops\-Per\-Sec().

\begin{DoxyReturn}{Returns}
The number of periodic loops per second. 
\end{DoxyReturn}
\hypertarget{class_systematic_robot_a1906802e28c2223dea24605a5153afde}{\index{Systematic\-Robot@{Systematic\-Robot}!Get\-Period@{Get\-Period}}
\index{Get\-Period@{Get\-Period}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{Get\-Period}]{\setlength{\rightskip}{0pt plus 5cm}double Systematic\-Robot\-::\-Get\-Period (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_systematic_robot_a1906802e28c2223dea24605a5153afde}
Gets the time between each periodic loop or 0 if it waits until the driver station sends data.

Almost exactly like Iterative\-Robot\-::\-Get\-Period().

\begin{DoxyReturn}{Returns}
The time between each periodic loop or 0 if it waits until the driver station sends data. 
\end{DoxyReturn}
\hypertarget{class_systematic_robot_ab52c5dcca0d153bd142a7ba31d9f6488}{\index{Systematic\-Robot@{Systematic\-Robot}!Initialize@{Initialize}}
\index{Initialize@{Initialize}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{Initialize}]{\setlength{\rightskip}{0pt plus 5cm}void Systematic\-Robot\-::\-Initialize (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}}\label{class_systematic_robot_ab52c5dcca0d153bd142a7ba31d9f6488}
Your robot's subsystems and services could be added here.

Or you could just put it in the constructor.

Users could override this method to add their robot's subsystems and controllers. \hypertarget{class_systematic_robot_a34a2e37910d74c59d3e501571af651b2}{\index{Systematic\-Robot@{Systematic\-Robot}!Set\-Period@{Set\-Period}}
\index{Set\-Period@{Set\-Period}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{Set\-Period}]{\setlength{\rightskip}{0pt plus 5cm}void Systematic\-Robot\-::\-Set\-Period (
\begin{DoxyParamCaption}
\item[{double}]{period}
\end{DoxyParamCaption}
)}}\label{class_systematic_robot_a34a2e37910d74c59d3e501571af651b2}
Set the time between each periodic loop or 0 for it to wait until the driver station sends data.

Almost exactly like Iterative\-Robot\-::\-Set\-Period().


\begin{DoxyParams}{Parameters}
{\em period} & The time between each periodic loop or 0 for it to wait until the driver station sends data. \\
\hline
\end{DoxyParams}


\subsection{Member Data Documentation}
\hypertarget{class_systematic_robot_a44bfb4d5c12753c430f8f953dd10b414}{\index{Systematic\-Robot@{Systematic\-Robot}!s\-Default\-Period@{s\-Default\-Period}}
\index{s\-Default\-Period@{s\-Default\-Period}!SystematicRobot@{Systematic\-Robot}}
\subsubsection[{s\-Default\-Period}]{\setlength{\rightskip}{0pt plus 5cm}const double Systematic\-Robot\-::s\-Default\-Period = 0.\-0\hspace{0.3cm}{\ttfamily [static]}}}\label{class_systematic_robot_a44bfb4d5c12753c430f8f953dd10b414}
The default time per period.

Will be 0 if it waits until the driver station sends data. 

The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
C\-:/\-Users/\-Sam/\-Projects/\-F\-R\-C/\-Libraries/\-Fpk/\-Entech-\/\-Fpk-\/\-Subscribers/\-Entech-\/\-Fpk/Systematic\-Robot.\-hpp\item 
C\-:/\-Users/\-Sam/\-Projects/\-F\-R\-C/\-Libraries/\-Fpk/\-Entech-\/\-Fpk-\/\-Subscribers/\-Entech-\/\-Fpk/Systematic\-Robot.\-cpp\end{DoxyCompactItemize}
